// 1.大数相加

// 2.带并发限制的fetch


// 二分查找


// 发布订阅模式


// 反转列表



// 防抖:事件在N秒后执行回调，如果在N秒内又被触发，会重新计时。


// 节流: 事件在触发N秒后执行回调，N秒内触发无效




// 归并排序




// 函数柯利化


    // 动态传入参数个数



// 将数组转为树形结构
var menu_list = [{
    id: '1',
    menu_name: '设置',
    menu_url: 'setting',
    parent_id: 0
   }, {
    id: '1-1',
    menu_name: '权限设置',
    menu_url: 'setting.permission',
    parent_id: '1'
   }, {
    id: '1-1-1',
    menu_name: '用户管理列表',
    menu_url: 'setting.permission.user_list',
    parent_id: '1-1'
   }, {
    id: '1-1-2',
    menu_name: '用户管理新增',
    menu_url: 'setting.permission.user_add',
    parent_id: '1-1'
   }, {
    id: '1-1-3',
    menu_name: '角色管理列表',
    menu_url: 'setting.permission.role_list',
    parent_id: '1-1'
   }, {
    id: '1-2',
    menu_name: '菜单设置',
    menu_url: 'setting.menu',
    parent_id: '1'
   }, {
    id: '1-2-1',
    menu_name: '菜单列表',
    menu_url: 'setting.menu.menu_list',
    parent_id: '1-2'
   }, {
    id: '1-2-2',
    menu_name: '菜单添加',
    menu_url: 'setting.menu.menu_add',
    parent_id: '1-2'
   }, {
    id: '2',
    menu_name: '订单',
    menu_url: 'order',
    parent_id: 0
   }, {
    id: '2-1',
    menu_name: '报单审核',
    menu_url: 'order.orderreview',
    parent_id: '2'
   }, {
    id: '2-2',
    menu_name: '退款管理',
    menu_url: 'order.refundmanagement',
    parent_id: '2'
   }
]


// 将http header转换为JS对象
/**
 * --- 测试用例 ---
 * 
 * 输入：
 * `Accept-Ranges: bytes 
 * Cache-Control: max-age=6000, public
 * Connection: keep-alive
 * Content-Type: application/javascript`
 * 
 * 输出：
 * {
 *   "Accept-Ranges": "bytes",
 *   "Cache-Control": "max-age=6000, public",
 *   Connection: "keep-alive",
 *   "Content-Type": "application/javascript"
 * }
 */



// 快速排序


// 冒泡排序


// 判断是否是回文数


// 求出一个集合所有的子集

// 全排列


// 深拷贝



// 实现千位分隔符


// 实现字符串翻转


// 实现trim方法


// 实现 setTimeout模拟setInterval


// 手写寄生组合继承

// 手写解析url
/**
 * --- 题目描述 ---
 * 
 * 实现一个函数，可以对 url 中的 query 部分做拆解，返回一个 key: value 形式的 object  
 * 
 * --- 实例 ---
 * 
 * 输入：'http://sample.com/?a=1&e&b=2&c=xx&d#hash' 
 * 输出：{a: 1, b: 2, c: 'xx', d: ''}  
 */



// 手写AJAX请求


// Promise封装AJAX



// LRU缓存

// 手写apply


// 手写call

// 手写bind


// 手写instanceof


// 手写JSONP
    // 前端代码

    // 服务端代码


// 手写new操作符


// 手写Promise.all


// 手写Promise


// 手写Promise.race


// 手写map


// 手写 reduce


// 手写filter


// 找出不含有重复字符的最长子串长度


// 数组去重




// 数组扁平化

